/*
    Borealis Library
    A library of commonly used hydrological modeling building blocks

    Copyright (C) 2008  Chris Marsh

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/*
	Borealis Unit Test

	Created: 11 - June - 2008
	(c) Chris Marsh

	Unit test to test the Regular expression tokenizer (regex_tokenizer)
*/

#ifndef REGEXTOKENIZER_UNITTEST_H
#define REGEXTOKENIZER_UNITTEST_H

#include <string>
#include <vector>

#include <cppunit\extensions\HelperMacros.h>


#include <borealis\Borealis.hpp>

class RegExTokenizerTest : public CppUnit::TestFixture
{

	CPPUNIT_TEST_SUITE(RegExTokenizerTest);
	CPPUNIT_TEST_EXCEPTION(InavildRegEx,std::runtime_error);
	CPPUNIT_TEST_EXCEPTION(BadCastLineTest, std::runtime_error);
	CPPUNIT_TEST(IntLineTest);
	CPPUNIT_TEST(DoubleLineTest);
	CPPUNIT_TEST_SUITE_END();

	private:
		Borealis::regex_tokenizer token;

	public:
		void InavildRegEx();

		void IntLineTest();
		void DoubleLineTest();

		void BadCastLineTest();
};

#endif